【Informatica Data Ingestion】ファイル取り込みタスクを使用してセッションログをS3に移送してみた

【Informatica Data Ingestion】ファイル取り込みタスクを使用してセッションログをS3に移送してみた

InformaticaのData Ingestion and Replicationでファイル取り込みを使用して、CDIのセッションログをS3に移送のご紹介記事。
Clock Icon2024.10.30

はじめに

こんにちは、データ事業本部の渡部です。

今回はInformaticaのData Ingestion and Replication(以降、Data Ingestion)でファイル取り込みによるセッションログの移送を試してみました。
弊社ではこれまでログ移送にはシェルスクリプトを使用していたのですが、今回Informaticaのサービスを使ってみての移送に挑戦してみます。

設定してみる

今回はセッションログファイルの移送なので、Data IngestionのFile Ingestion(ファイル取り込み)を使用します。
構成としては、SecureAgentサーバーからS3への移送となります。

Cloud Data Integrationのホーム画面で「新規」を選択して、「データ取り込みおよびレプリケーション」から「ファイル取り込みおよびレプリケーションタスク」を選択します。

貼り付けた画像_2024_10_29_23_02

なお今回移送するセッションログは、以下の記事でご紹介した命名方法を採用しています。
セッションログの名前が気になった場合は、以下記事をご参考ください。
https://dev.classmethod.jp/articles/informatica-cdi-sessionlog-name/

定義

File Ingestionの設定をしていきます。
タスク名とランタイム環境を設定します。
プレフィクスはData IngestionのFileということで、difとしております。

dif_01

ソース

データ取り込み元のソース設定をします。

dif_02

何個か重要な設定について解説します。

  • ファイルピックアップ
    • ${$PMSessionLogDir}と設定しました。
    • これはInformaticaのシステム変数であり、「パラメータの追加」のリストから選択することが可能です。
    • もちろん任意のフォルダを指定することも可能です。
  • ファイルパターン
    • s.*(?<!_import).log$と設定しました。
    • 末尾がimportとなっておらず、先頭がs始まりのセッションログを移送対象にするため、正規表現で記載しています。以下はセッションログディレクトリ配下です。
[infa@ip-10-10-0-151 logs]$ ls -la | grep s_mt_creat
-rw-r--r--. 1 infa infa      2335 Oct 25 08:38 s_mt_create_file_at_run_time_check_records_1729813090000_55_import.log
-rw-r--r--. 1 infa infa     12341 Oct 25 08:38 s_mt_create_file_at_run_time_check_records_1729813090000_55.log
-rw-r--r--. 1 infa infa      2335 Oct 25 08:42 s_mt_create_file_at_run_time_check_records_1729813333120_56_import.log
-rw-r--r--. 1 infa infa     12342 Oct 25 08:42 s_mt_create_file_at_run_time_check_records_1729813333120_56.log
-rw-r--r--. 1 infa infa      2335 Oct 25 08:49 s_mt_create_file_at_run_time_check_records_1729813788755_57_import.log
-rw-r--r--. 1 infa infa     12341 Oct 25 08:50 s_mt_create_file_at_run_time_check_records_1729813788755_57.log
-rw-r--r--. 1 infa infa      2335 Oct 25 08:19 s_mt_create_file_at_run_time_check_records_20241024191930_54_import.log
-rw-r--r--. 1 infa infa     12342 Oct 25 08:19 s_mt_create_file_at_run_time_check_records_20241024191930_54.log
  • ファイルの安定性を確認
    • 最終更新から10秒経過したものを移送するように設定しました。
    • 更新中のファイルは移送しないようにします。
  • ファイルのピックアップ後
    • ファイルを削除と設定しました。
    • ソースファイルを移送した後の操作を設定できて、ファイルを保持ファイルを削除ファイル名の変更アーカイブファイルが選択可能です。

ターゲット

続いてデータ取り込み先のターゲット設定をします。
作成済みのS3コネクタを接続に設定しています。コネクタはバケットを指定している簡単なものです。

dif_03_new

  • フォルダパス
    • ./sessionlog/${system.year}/${system.month}/${system.day}と設定しました。相変わらずシステム変数を使用しています。
    • 相対パスで設定することが可能です。
  • ファイルが存在する場合
    • 上書きを選択しました。
    • ターゲットフォルダに同名ファイルが存在する場合の操作を選択できて、タイムスタンプを選択すると、サフィックスにファイル名が付与されます。

アクション

ターゲットに取り込む前にファイルへ加工処理が可能です。

dif_04

今回は設定しませんでしたが、以下の操作が選択可能です。

dif_04_2

ランタイムオプション

ここはデフォルトのまま設定します。

dif_05

実行してみた

前述のとおり、末尾がimportとなっておらず、先頭がs始まりのログを移送します。
実行前の様子です。

[infa@ip-10-10-0-151 logs]$ ls -la | grep s_mt_creat
-rw-r--r--. 1 infa infa      2335 Oct 25 08:38 s_mt_create_file_at_run_time_check_records_1729813090000_55_import.log
-rw-r--r--. 1 infa infa     12341 Oct 25 08:38 s_mt_create_file_at_run_time_check_records_1729813090000_55.log
-rw-r--r--. 1 infa infa      2335 Oct 25 08:42 s_mt_create_file_at_run_time_check_records_1729813333120_56_import.log
-rw-r--r--. 1 infa infa     12342 Oct 25 08:42 s_mt_create_file_at_run_time_check_records_1729813333120_56.log
-rw-r--r--. 1 infa infa      2335 Oct 25 08:49 s_mt_create_file_at_run_time_check_records_1729813788755_57_import.log
-rw-r--r--. 1 infa infa     12341 Oct 25 08:50 s_mt_create_file_at_run_time_check_records_1729813788755_57.log
-rw-r--r--. 1 infa infa      2335 Oct 25 08:19 s_mt_create_file_at_run_time_check_records_20241024191930_54_import.log
-rw-r--r--. 1 infa infa     12342 Oct 25 08:19 s_mt_create_file_at_run_time_check_records_20241024191930_54.log

Data Ingestionを実行しました。
処理が成功すると、ジョブ履歴からは移送されたファイルや処理時間といったオペレーショナルなメタデータが確認可能です。

monitor

実際にログディレクトリを見てみると、ソースファイルが削除されています。

[infa@ip-10-10-0-151 logs]$ ls -la | grep s_mt_creat
-rw-r--r--. 1 infa infa  2335 Oct 25 08:38 s_mt_create_file_at_run_time_check_records_1729813090000_55_import.log
-rw-r--r--. 1 infa infa  2335 Oct 25 08:42 s_mt_create_file_at_run_time_check_records_1729813333120_56_import.log
-rw-r--r--. 1 infa infa  2335 Oct 25 08:49 s_mt_create_file_at_run_time_check_records_1729813788755_57_import.log
-rw-r--r--. 1 infa infa  2335 Oct 25 08:19 s_mt_create_file_at_run_time_check_records_20241024191930_54_import.log

S3にフォルダパスが作成されつつ、セッションログが移送されています。
※スクショを撮るのを忘れてしまい、別のログファイルの移送結果を貼っています。

dif_07-2

さいごに

今回はData Ingestionのファイル取り込みでセッションログの移送を試してみました。
実はこのData Ingestion、CDIの処理時間単位でのIPU消費ではなく、データサイズ単位でのIPU消費 となります。
また大量ファイルを取り込む場合の速度も速いです。
そのためデータ加工などがなく大量データを素早く取り込みたい場合に使用を検討するとよいでしょう。

Informaticaにはセッションログの他にも多くのログファイルがあるため、移送の際はこちらの記事をご参考いただければと思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.